package Proxy.java.dynamicProxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

// 将来生成的动态代理方法的内容
public class InterfaceInvocationHandler implements InvocationHandler {

    //功能接口用哪个实现类实现
    private Object kind;

    public InterfaceInvocationHandler(Object kind) {
        this.kind = kind;
    }

    //
    //在这里书写代理要执行的操作
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("前置处理");
        method.invoke(kind,args);
//         ↑      ↑    ↑     ↑
//        接口   执行  实现类  参数
        System.out.println("后置处理");
        return null;
    }
}

